home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #3 & #4
/
Amiga Plus CD - 1995 - No. 3 and 4.iso
/
pd
/
sound
/
cybersound
/
cdplayer
/
cdplayer.dok
< prev
next >
Wrap
Text File
|
1995-07-20
|
11KB
|
311 lines
|
| //
| \X/ Flowerpower präsentiert *verdammt* stolz
|
-----+------------------------------------------------------------------------
|
| einen Stereo CD-DA Spieler basierend auf einem 14 Bit Treiber
|
| mit einem coolen CLI, Workbench und DeliTracker Interface
|
| für Toshiba 4101 CDRom Laufwerke und Kompatible (*)
|
|
(*) Unterstützung für andere Laufwerkstypen ist geplant
EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
EINLEITUNG
----------
Dieses Utility entstand, weil ich mich zur Zeit stark mit
Sound-Programmierung beschäftige. Ich habe vor, die alten Amiga
Soundtreiber (audio.device, Sound Datatypes) durch mächtigere und
flexiblere zu ersetzen.
Der CD-DA Spieler wurde eigentlich nur geschrieben, um den 14 Bit Treiber
zu testen, der ebenfalls in diesem Archiv enthalten ist. Dieser Treiber
ist mein erster Schritt in Richtung eines komplexen Mehrkanal-Soundsystems
(Arbeitsname: "CyberSound").
Da sich dieses Utility sich als sehr lustig und auch nützlich erwiesen hat,
habe ich mich entschlossen, eine Benutzerschnittstelle zu erstellen und das
Programm zu veröffentlichen. Außerdem kann ich ein wenig mit meinem 14
Bit-Treiber angeben und Ihnen das Konzept meines geplanten Soundsystems
etwas näherbringen. Ich hoffe wirklich, daß dieses Projekt erfolgreich
abgeschlossen werden kann.
Zu dem Zeitpunkt, da ich dieses Dokument schreibe, höre ich gerade einen
schönen CD-DA Soundtrack in vollem Multitasking über die Amiga-Soundkanäle.
Man kann wirklich kaum einen Unterschied zu "echtem" CD-Sound heraushören.
LEISTUNGSMERKMALE
-----------------
Dieses Programm spielt CD-DA Daten durch die Amiga Soundkanäle in 22kHz
Stereo auf ECS-Maschinen und in 44kHz auf AGA-Rechnern in bestimmten
Screenmodi ab.
Sie können auch gemischte CDs anhören, die sowohl Daten- auch als Musik
enthalten (z.B. Spiele-CDs). Die Datenspuren werden übersprungen.
DIE CLI-SCHNITTSTELLE
---------------------
Die Kommandoschablone ist wie folgt:
TRACKS/N/M,DEVICE/K,UNIT/N/K,SOUNDDRIVER/K,REPEAT/S,...
FREQUENCY/N,QUALITY/N,BUFFERS/N,HIGHPRI/S
TRACKS/N/M
Eine Liste der Audio Titel, die in der angegebenen Reihenfolge gespielt
werden sollen. Wird hier nichts angegeben, so werden alle Titel gespielt.
DEVICE/K
Hier geben Sie Ihren SCSI Treiber an. Ansonsten wird "scsi.device"
benutzt.
UNIT/N/K
Hier geben Sie die SCSI-Einheit Ihres CDRom an. Ansonsten wird die Nummer
3 benutzt.
SOUNDDRIVER/K
Hier wird gewöhnlich "14bit.driver" benutzt. Es ist der einzige
Soundtreiber, der bisher existiert. Er ist noch lange nicht perfekt oder
fertiggestellt.
REPEAT/S
Ein Schalter, der den Wiederholungs-Modus aktiviert. Die Titelliste wird
wiederholt abgespielt, wenn dieser Parameter angegeben wird.
FREQUENCY/N
Sie können hiermit versuchen, die CD in einer anderen Frequenz anzuhören.
Normal werden 44100 Hz verwendet. Höhere Frequenzen werden wahrscheinlich
nicht gut funktionieren (CDRom zu langsam), aber langsameres Abspielen kann
sehr lustig klingen.
QUALITY/N
Hier können Sie den Qualitätsfaktor angeben. Er steht normalerweise auf 1.
Das bedeutet, dass jedes Sample-Wort ausgegeben wird. Der Wert 3 zum
Beispiel bedeutet, dass nur jedes dritte Sample ausgegeben wird, weshalb
die effektive Ausgabefrequenz durch drei geteilt wird. Anmerkung: Das
Programm wird diesen Wert automatisch erhöhen, wenn Ihre Hardware nicht in
der Lage ist, die gewünschte Frequenz auszugeben. Auf ECS-Rechnern wird
dieser Wert immer auf zwei erhöht. Auf AGA Maschinen paßt sich dieser Wert
während des Abspielens immer dem aktuellen Screenmode an.
BUFFERS/N
Dieser Wert definiert die Größer der Puffer, die im RAM belegt werden, um
die CD-DA Daten vom Laufwerk aufzunehmen. Drei Puffer werden benötigt.
Ein Wert von 75 bedeutet Platz für eine Sekunde. Der voreingestellte Wert
beträgt hier 20. Der gesamte Speicherverbrauch kann mit folgender Formel
berechnet werden: Speicherverbrauch = BUFFERS * 7056 Byte.
HIGHPRI/S
Dieses Flag erhöht die Task-Priorität Ihres SCSI Treibers, sodaß das
Abspielen nicht länger durch das Bewegen und Verändern von Fenstern gestört
wird. Seien Sie vorsichtig: Das muß nicht unbedingt mit allen SCSI
Treibern funktionieren. Sie sind also gewarnt. Wenn Sie dieses Flag
setzen, so können Sie sehr kleine Puffer-Werte benutzen (z.B. 3). Die
Priorität wird beim Verlassen des Programmes wieder zurückgesetzt.
PUBSCREEN/K
Diese Option erlaubt Ihnen, den Namen des öffentlichen Bildschirms
anzugeben, auf dem sich das Fenster des CDPlayers öffnen soll.
GUI/S
Hiermit öffnet der CDPlayer seine grafische Benutzerschnittstelle. Das
kann nützlich sein, wenn Sie den CDPlayer von einer Shell aus starten.
DIE WORKBENCH-SCHNITTSTELLE
---------------------------
Die Workbench-Schnittstelle benutzt das TapeDeck Gadget, das von Commodore
auf den Workbench 3.0 Disketten ausgeliefert wird. Dieses benötigt also
wahrscheinlich auch Kickstart 3.0. Ich weiß nicht, ob diese Gadget-Klasse
auch mit Kickstart 2.0 funktioniert. Das TapeDeck Gadget ist einfach, aber
funktional. Manch einer mag die DeliTracker-Schnittstelle vorziehen, die
weiter unten erklärt wird.
Sie können die folgenden Tooltypes in das Programm-Icon eintragen:
TRACKS =<Titel Liste>
DEVICE =<Device Name>
UNIT =<Device Einheit>
SOUNDDRIVER=<Treiber-Name>
REPEAT =<TRUE/FALSE oder YES/NO>
FREQUENCY =<Zahl>
QUALITY =<Zahl>
BUFFERS =<Zahl>
HIGHPRI =<TRUE/FALSE oder YES/NO>
PUBSCREEN =<Name des Bildschirmes>
Wenn Sie bei REPEAT oder HIGHPRI das Argument weglassen, nimmt das Programm
an, der Schalter sei gesetzt (TRUE).
DIE DELITRACKER-SCHNITTSTELLE
-----------------------------
Dieses Programm kann auch zusammen mit DeliTracker verwendet werden.
Kopieren Sie es einfach in die Players-Schublade Ihrer
DeliTracker-Installation. Um den Player zu aktivieren, müssen Sie ein oder
mehrere "Alibi"-Module erstellen. Benutzen Sie einen Text-Editor und
schreiben die folgende Zeile:
CD-DA [OPTIONEN]
Speichern Sie diese Datei, wohin Sie wünschen. Der [OPTIONEN] Parameter
ist (man glaubt es kaum) optional und darf alle Argumente enthalten, die
oben bei der CLI-Schnittstelle beschrieben wurden.
Wenn Sie dieses Modul dann mit dem DeliTracker abspielen, können Sie sich
die CD anhören. Benutzen Sie die Schalter des DeliTracker, um sich auf der
CD zu bewegen.
Mit den +/- Geschwindigkeits-Knöpfen auf der linken Seite können Sie die
Abspielfrequenz in 100 Hz-Schritten justieren. Mit den << und >> Knöpfen
ist es möglich, im aktuellen Lied um 10 Sekunden zu springen.
VOREINSTELLUNGEN
----------------
Um zu vermeiden, daß man immer wieder die selben Optionen angeben muß,
können Sie die am häufigsten verwendeten Parameter in einer
Environment-Variable namens CD-DA_DEFAULTS abspeichern. Diese Parameter
sind die gleichen, die auch bei der CLI-Schnittstelle gelten. Sie werden
durch die Optionen überlagert, die dann jeweils im CLI, den ToolTypes oder
im "Alibi"-Modul angegeben werden. Beachten Sie: Eine Titel-Liste wird in
den Voreinstellungen ignoriert.
HINWEISE, TIPS & TRICKS
-----------------------
Dieses Programm wird Ihr System merklich verlangsamen. Wie stark, hängt
vor allem von Ihrem SCSI Controller ab (DMA-Zugriff ist von großem
Vorteil).
Die 14Bit Soundausgabe ist nicht so laut, wie Sie es von Ihrem Amiga
gewohnt sind. Sie werden wahrscheinlich die Lautstärke an Ihrem Verstärker
etwas hochregeln müssen.
Wenn Sie Unterbrechungen beim Spielen bemerken, versuchen Sie die
Unit-Nummer Ihres CDRoms höher zu setzen, als die Ihrer Festplatten.
Höhere Unit-Nummern haben auf dem SCSI-Bus den Vorrang. Bei starkem
Festplattenzugriff werden Unterbrechungen allerdings kaum ganz zu vermeiden
sein. Das Toshiba CDRom liefert die Daten leider nur mit "Single-Speed",
deshalb ist das Timing *sehr* kritisch. Ich habe eine ganze Menge Arbeit
in die Perfektion der I/O Routinen investiert.
Wenn Sie beim Bewegen oder Verändern von Fenstern Unterbrechungen hören,
dann versuchen Sie einmal, den HIGHPRI-Schalter zu setzen. Dieser wird die
Priorität Ihres SCSI Treibers über die des input.device erhöhen. Das
funktioniert allerdings nur, wenn der SCSI Treiber als ein Task läuft und
die IORequest von diesem Task aus beantwortet werden. Im Programm befindet
sich ein wenig Extra-Code, um dem A590/A2091 Controller in dieser Hinsicht
zu unterstützen (er benutzt zwei Tasks).
Kleinere Puffer-Werte bedeuten eine kürzere Reaktionszeit auf die Schalter
im DeliTracker. Aber kleine Puffer erhöhen auch die Gefahr von
Audio-Unterbrechungen. Vernünftige Werte beginnen ungefähr mit 3.
Versuchen Sie nicht, auf die Daten-Sektion der CD zuzugreifen, während Sie
die CD anhören. Leider gibt es kein Protokoll, um das CDRom Laufwerk
zwischen zwei Tasks zu teilen. Deshalb können sich CDRom-Treiber wie
AmiCDRom und dieser Spieler gegenseitig in die Quere kommen. Nachdem Sie
eine CD ins Laufwerk eingelegt haben, warten Sie bitte eine Weile, bis das
DOS und die Workbench die CD identifiziert haben und das Icon dargestellt
haben. Erst dann sollten Sie das Abspielen starten.
14 Bit ist nicht ganz so gut wie 16Bit. Aber versuchen Sie mal, den
Unterschied herauszuhören. Sogar mit Kopfhörern ist das recht schwierig.
Die 22kHz auf ECS Maschinen sind natürlich nicht *ganz* so gut wie 44kHz.
Nunja, schieben Sie es auf Paula. Aber auch das klingt immernoch sehr gut!
RECHTLICHES
-----------
Das Programm ist Public Domain. Es darf nur zusammen mit den Quelltexten
und der Dokumentation weitergegeben werden.
Dieses Programm funktioniert auf meinem Computer. Ich kann weder
garantieren, daß dieses Programm auch auf Ihrem Rechner funktioniert, noch
daß es fehlerfrei ist. Ich bin nicht verantwortlich für irgendwelche
Schäden, die dieses Programm unter Umständen bei Ihnen anrichtet.
PROGRAMM-ENTWICKLUNGSGESCHICKTE
-------------------------------
CDPlayer 1.1
* GUI und PUBSCREEN Optionen hinzugefügt
* Auswahl des Stream-Formates beim Soundtreiber (16 Bit Big Endian)
MÖGLICHE ERWEITERUNGEN
----------------------
* ebenfalls eine Datatypes-Schnittstelle (und alles in einem File!)
* eine "echte" CD-DA Version des Spielers (über die Audio-Kanäle des CDRoms)
* Unterstütztung anderer CDRom-Laufwerke (senden Sie mir Infos dazu!)
* Verbesserung des 14 Bit Treibers
* Treiber für andere Soundkarten schreiben (Toccata, Maestro)
* Nachdem CyberSound fertiggestellt ist, diesen Treiber anpassen, um die
Fähigkeiten des neuen Soundsystems auszunutzen. Dann kann jeder Task
jeden beliebigen Sound spielen, während Sie der CD zuhören! (genug
CPU-Power vorausgesetzt!)
KONTAKT-ADDRESSE
----------------
EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
FidoNet: 2:2480/465
Schneckenpost:
Christian Buchner
Ganghoferstraße 2
82110 Germering
Deutschland
Tel.: +49-(0)89/844872